//lainattu http://qt-project.org/wiki/PushButton_Based_On_Action

#include "toimintonappula.hh"

ToimintoNappula::ToimintoNappula(QWidget *parent) :
   QPushButton(parent)
{
   omistaja = NULL;
}

//Asettaa nappulaan toiminnon
void ToimintoNappula::asetaToiminto(QAction *toiminto)
{
   if (omistaja != NULL && omistaja != toiminto)
   {
      disconnect(omistaja, SIGNAL(changed()), this, SLOT(paivitaTilaToiminnosta()));
      disconnect(this, SIGNAL(clicked()), omistaja, SLOT(trigger()));
   }

   omistaja = toiminto;
   paivitaTilaToiminnosta();

   connect(toiminto, SIGNAL(changed()), this, SLOT(paivitaTilaToiminnosta()));
   connect(this, SIGNAL(clicked()), omistaja, SLOT(trigger()));
}

void ToimintoNappula::paivitaTilaToiminnosta()
{
   setText(omistaja->text());
   setStatusTip(omistaja->statusTip());
   setToolTip(omistaja->toolTip());
   setIcon(omistaja->icon());
   setEnabled(omistaja->isEnabled());
}
